home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
The X-Philes (2nd Revision)
/
The X-Philes Number 1 (1995).iso
/
xphiles
/
hp48hor2
/
rosetta.doc
< prev
next >
Wrap
Text File
|
1995-03-31
|
21KB
|
577 lines
(Comp.sys.hp48)
Item: 84 by bson@rice-chex.ai.mit.edu [Jan Brittenson]
and joehorn@hpcvbbs.cv.hp.com [Joseph K. Horn]
Subj: Rosetta Stone (STAR version)
Date: Sun Oct 27 1991
Éííííííííííííííííííííííííí»
º º
º The Rosetta Stone º
º º
º HP <-> AG Mnemonics º
º º
èííííííííííííííííííííííííí¼
There are two different sets of mnemonics in use for the HP48's
assembly language; the set used by HP to develop their calculators'
operating systems and support software, and the set invented by Alonzo
Gariepy in an attempt to make assembly language more understandable.
People keep clamoring for a HP-to-AG dictionary. Here it is.
Compiled by Joseph K. Horn, from the HP-mnemonics list by Derek S.
Nickel, dated 30 January 1991 and the AG disassembly program "DISD" by
Kevin Pryor. (Both can be found on EduCALC Goodies Disk #2).
Modified by Jan Brittenson October 1991, to match STAR syntax, to
fill in unknowns, and to prepare it for inclusion as an appendix in
the MLDL manual.
[Included on this Goodies Disk to accompany the MLDL1.06
documentation. -jkh-]
Syntax:
úÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
3 HEX HP | AG 3
àÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄù
Please post all errors and omissions discovered. Thank you.
[Note: None posted as of 20 October 1991. -jkh-]
íííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííí
OVERVIEW
íííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííí
0... misc operations (see next page)
1... data movement/loading (see following page)
2n P= n | MOVE.1 n,P
3xn..n LC(x) n..n | MOVE.Px n..n,C
3mc..c LCASC \A..A\ | MOVE.Pn `A..A',C
3nh..h LCHEX h..h | MOVE.Pn h..h,C
400 RTNCS | RETCS
4aa GOC label | BRCS label
420 NOP3 | NOP3
500 RTNNC | RETCC
5aa GONC label | BRCC label
6aaa GOTO label | JUMP label
6300 NOP4 | NOP4
64000 NOP5 | NOP5
7aaa GOSUB label | CALL label
A...F (see pages at end)
íííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííí
0
íííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííí
00 RTNSXM | RETSETXM
01 RTN | RET
02 RTNSC | RETSETC
03 RTNCC | RETCLRC
04 SETHEX | SETHEX
05 SETDEC | SETDEC
06 RSTK=C | PUSH.A C
07 C=RSTK | POP.A C
08 CLRST | CLR.X ST
09 C=ST | MOVE.X ST,C
0A ST=C | MOVE.X C,ST
0B CSTEX | SWAP.X C,ST
0C P=P+1 | INC.1 P
0D P=P-1 | DEC.1 P
0Exx (see below)
0F RTI | RETI
(see "fs" field select table below)
0Ea0 A=A&B fs | AND.fs B,A
0Ea1 B=B&C fs | AND.fs C,B
0Ea2 C=C&A fs | AND.fs A,C
0Ea3 D=D&C fs | AND.fs C,D
0Ea4 B=B&A fs | AND.fs A,B
0Ea5 C=C&B fs | AND.fs B,C
0Ea6 A=A&C fs | AND.fs C,A
0Ea7 C=C&D fs | AND.fs D,C
0Ea8 A=A!B fs | OR.fs B,A
0Ea9 B=B!C fs | OR.fs C,B
0EaA C=C!A fs | OR.fs A,C
0EaB D=D!C fs | OR.fs C,D
0EaC B=B!A fs | OR.fs A,B
0EaD C=C!B fs | OR.fs B,C
0EaE A=A!C fs | OR.fs C,A
0EaF C=C!D fs | OR.fs D,C
fs: P WP XS X S M B W A <-- use this "fs" field
a: 0 1 2 3 4 5 6 7 F <-- for this value of "a" above
íííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííí
10, 11, 12
íííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííí
100 R0=A | MOVE.W A,R0
101 R1=A | MOVE.W A,R1
102 R2=A | MOVE.W A,R2
103 R3=A | MOVE.W A,R3
104 R4=A | MOVE.W A,R4
108 R0=C | MOVE.W C,R0
109 R1=C | MOVE.W C,R1
10A R2=C | MOVE.W C,R2
10B R3=C | MOVE.W C,R3
10C R4=C | MOVE.W C,R4
110 A=R0 | MOVE.W R0,A
111 A=R1 | MOVE.W R1,A
112 A=R2 | MOVE.W R2,A
113 A=R3 | MOVE.W R3,A
114 A=R4 | MOVE.W R4,A
118 C=R0 | MOVE.W R0,C
119 C=R1 | MOVE.W R1,C
11A C=R2 | MOVE.W R2,C
11B C=R3 | MOVE.W R3,C
11C C=R4 | MOVE.W R4,C
120 AR0EX | SWAP.W A,R0
121 AR1EX | SWAP.W A,R1
122 AR2EX | SWAP.W A,R2
123 AR3EX | SWAP.W A,R3
124 AR4EX | SWAP.W A,R4
128 CR0EX | SWAP.W C,R0
129 CR1EX | SWAP.W C,R1
12A CR2EX | SWAP.W C,R2
12B CR3EX | SWAP.W C,R3
12C CR4EX | SWAP.W C,R4
íííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííí
13 through 1F
íííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííí
130 D0=A | MOVE.A A,D0
131 D1=A | MOVE.A A,D1
132 AD0EX | SWAP.A A,D0
133 AD1EX | SWAP.A A,D1
134 D0=C | MOVE.A C,D0
135 D1=C | MOVE.A C,D1
136 CD0EX | SWAP.A C,D0
137 CD1EX | SWAP.A C,D1
138 D0=AS | MOVE.4 A,D0
139 D1=AS | MOVE.4 A,D1
13A AD0XS | SWAP.4 A,D0
13B AD1XS | SWAP.4 A,D1
13C D0=CS | MOVE.4 C,D0
13D D1=CS | MOVE.4 C,D1
13E CD0XS | SWAP.4 C,D0
13F CD1XS | SWAP.4 C,D1
ÄÄÄÄÄÄÄÄÄÄ field ÄÄÄÄÄÄÄÄÄÄÄ
A B fs d
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
140 148 150a 158x DAT0=A fs | MOVE.fs A,@D0
141 149 151a 159x DAT1=A fs | MOVE.fs A,@D1
142 14A 152a 15Ax A=DAT0 fs | MOVE.fs @D0,A
143 14B 153a 15Bx A=DAT1 fs | MOVE.fs @D1,A
144 14C 154a 15Cx DAT0=C fs | MOVE.fs C,@D0
145 14D 155a 15Dx DAT1=C fs | MOVE.fs C,@D1
146 14E 156a 15Ex C=DAT0 fs | MOVE.fs @D0,C
147 14F 157a 15Fx C=DAT1 fs | MOVE.fs @D1,C
16x D0=D0+ n | ADD.A n,D0
17x D1=D1+ n | ADD.A n,D1
18x D0=D0- n | SUB.A n,D0
19nn D0=(2) nn | MOVE.2 nn,D0 **
19hh D0=HEX hh | MOVE.2 hh,D0 **
1Annnn D0=(4) nnnn | MOVE.4 nnnn,D0 **
1Ahhhh D0=HEX hhhh | MOVE.4 hhhh,D0 **
1Bnnnnn D0=(5) nnnnn | MOVE.5 nnnnn,D0 **
1Bhhhhh D0=HEX hhhhh | MOVE.5 hhhhh,D0 **
1Cx D1=D1- n | SUB.A n,D1
1Dnn D1=(2) nn | MOVE.2 nn,D1 **
1Dhh D1=HEX hh | MOVE.2 hh,D1 **
1Ennnn D1=(4) nnnn | MOVE.4 nnnn,D1 **
1Ehhhh D1=HEX hhhh | MOVE.4 hhhh,D1 **
1Fnnnnn D1=(5) nnnnn | MOVE.5 nnnnn,D1 **
1Fhhhhh D1=HEX hhhhh | MOVE.5 hhhhh,D1 **
** In the STAR assembler, the instruction suffix
(2, 4, or 5 above) determines the operand size, the
operand is any general expression. The instruction
does not determine the integer base; rather, as in
all expression, constants of any mix of bases may
be used. The following two instructions are identical:
MOVE.2 0x40+5, D0 ; Hex plus decimal
MOVE.2 64+0x5, D0 ; Decimal plus hex
fs: P WP XS X S M B W
a: 0 1 2 3 4 5 6 7
x = d - 1 x = n - 1
d = x + 1 n = x + 1
íííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííí
80
íííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííí
800 OUT=CS | OUT.S C
801 OUT=C | OUT.X C
802 A=IN | IN.4 A
803 C=IN | IN.4 C
804 UNCNFG | UNCNFG
805 CONFIG | CONFIG
806 C=ID | MOVE.A ID,C
807 SHUTDN | SHUTDN
8080 INTON | INTON
80810 RSI | RSI
8082xn..n LA(m) n..n | MOVE.Pm n..n,A
8082mc..c LAASC \A..A\ | MOVE.Pn `A..A',A
8082nh..h LAHEX h..h | MOVE.Pd h..h,A
8083 BUSCB | BUSCB
8084n ABIT=0 d | CLRB d,A
8085n ABIT=1 d | SETB d,A
8086nyy ?ABIT=0 d | BRBC d,A,label / RETBC d,A
8087nyy ?ABIT=1 d | BRBS d,A,label / RETBS d,A
8088n CBIT=0 d | CLRB d,C
8089n CBIT=1 d | SETB d,C
808Anyy ?CBIT=0 d | BRBC d,C,label / RETBC d,C
808Bnyy ?CBIT=1 d | BRBS d,C,label / RETBS d,C
808C PC=(A) | JUMP.A @A
808D BUSCD | BUSCD
808E PC=(C) | JUMP.A @C
808F INTOFF | INTOFF
809 C+P+1 | ADD.A P+1,C
80A RESET | RESET
80B BUSCC | BUSCC
80Cn C=P n | MOVE.1 P,C.n
80Dn P=C n | MOVE.1 C.n,P
80E SREQ? | SREQ
80Fn CPEX n | SWAP.1 P,C.n
íííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííí
81
íííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííí
810 ASLC | RLN.W A
811 BSLC | RLN.W B
812 CSLC | RLN.W C
813 DSLC | RLN.W D
814 ASRC | RRN.W A
815 BSRC | RRN.W B
816 CSRC | RRN.W C
817 DSRC | RRN.W D
81C ASRB | SRB.W A
81D BSRB | SRB.W B
81E CSRB | SRB.W C
81F DSRB | SRB.W D
818a0x A=A+n fs | ADD.fs n,A
818a1x B=B+n fs | ADD.fs n,B
818a2x C=C+n fs | ADD.fs n,C
818a3x D=D+n fs | ADD.fs n,D
818b0x A=A-n fs | SUB.fs n,A
818b1x B=B-n fs | SUB.fs n,B
818b2x C=C-n fs | SUB.fs n,C
818b3x D=D-n fs | SUB.fs n,D
fs: P WP XS X S M B W
a: 0 1 2 3 4 5 6 7
b: 8 9 A B C D E F
íííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííí
82 through 8F, 9
íííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííí
82n HS=0 n | CLRB [],HST {MP,SR,SB,XM} (see ** below)
821 XM=0 | CLRB [XM],HST { 0 0 0 1 -> 1}
822 SB=0 | CLRB [SB],HST { 0 0 1 0 -> 2}
824 SR=0 | CLRB [SR],HST { 0 1 0 0 -> 4}
828 MP=0 | CLRB [MP],HST { 1 0 0 0 -> 8}
82F CLRHST | CLRB [XM,SB,SR,MP],HST
** e.g. 829 is HS=0 9 | CLRB [XM,MP],HST
Note: in the STAR assembler, the notation [A,B,C...] means "an
integer with bits A,B,C... set". [] is zero. The symbols "MP", "SR",
"SB", and "XM" are predefined by the assembler to the values 0, 1, 2,
and 3 respectively. Thus, "[3,1]" is equivalent to "[XM,MP]". All
[...] constructions are collectively refered to as a "bit pattern
expressions."
831yy ?XM=0 | BRBC [XM],HST,label / RETBC [XM],HST **
832yy ?SB=0 | BRBC [SB],HST,label / RETBC [SB],HST **
834yy ?SR=0 | BRBC [SR],HST,label / RETBC [SR],HST **
838yy ?MP=0 | BRBC [MP],HST,label / RETBC [MP],HST **
** See explanation of bit pattern expressions above.
84n ST=0 n | CLRB n,ST
85n ST=1 n | SETB n,ST
86nyy ?ST=0 n | BRBC n,ST,label / RETBC n,ST
87nyy ?ST=1 n | BRBS n,ST,label / RETBS n,ST
88nyy ?P# n | BRNE.1 P,n,label / RETNE.1 P,n
89nyy ?P= n | BREQ.1 P,n,label / RETEQ.1 P,n
8A...8b... (see below)
8Caaaa GOLONG label | JUMP.4 label
8Daaaaa GOVLNG label ! JUMP.A label
8Eaaaa GOSUBL label ! CALL.4 label
8Faaaaa GOSBVL label ! CALL.A label
9zxyy (see below)
test00 RTNYES ! (not needed; see test mnemonics)
testyy GOYES label ! (not needed; see test mnemonics)
Relative gotos (GOTO, GOLONG, GOC, GONC, GOYES):
Offset is relative to the first nibble of the offset.
Relative gosubs (GOSUB, GOSUBL):
Offset is relative to the first nibble of the next instruction.
íííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííí
8A, 8B, 9
íííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííí
ÄÄÄ field ÄÄÄÄ
A fs
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
8A0yy 9a0yy ?A=B field | BREQ.field A,B,PC+(yy+3) **
8A1yy 9a1yy ?B=C field | BREQ.field B,C,PC+(yy+3)
8A2yy 9a2yy ?A=C field | BREQ.field A,C,PC+(yy+3)
8A3yy 9a3yy ?C=D field | BREQ.field C,D,PC+(yy+3)
8A4yy 9a4yy ?A#B field | BRNE.field A,B,PC+(yy+3)
8A5yy 9a5yy ?B#C field | BRNE.field B,C,PC+(yy+3)
8A6yy 9a6yy ?A#C field | BRNE.field A,C,PC+(yy+3)
8A7yy 9a7yy ?C#D field | BRNE.field C,D,PC+(yy+3)
8A8yy 9a8yy ?A=0 field | BRZ.field A,PC+(yy+3)
8A9yy 9a9yy ?B=0 field | BRZ.field B,PC+(yy+3)
8AAyy 9aAyy ?C=0 field | BRZ.field C,PC+(yy+3)
8AByy 9aByy ?D=0 field | BRZ.field D,PC+(yy+3)
8ACyy 9aCyy ?A#0 field | BRNZ.field A,PC+(yy+3)
8ADyy 9aDyy ?B#0 field | BRNZ.field B,PC+(yy+3)
8AEyy 9aEyy ?C#0 field | BRNZ.field C,PC+(yy+3)
8AFyy 9aFyy ?D#0 field | BRNZ.field D,PC+(yy+3)
8B0yy 9b0yy ?A>B field | BRGT.field A,B,PC+(yy+3) **
8B1yy 9b1yy ?B>C field | BRGT.field B,C,PC+(yy+3)
8B2yy 9b2yy ?C>A field | BRGT.field C,A,PC+(yy+3)
8B3yy 9b3yy ?D>C field | BRGT.field D,C,PC+(yy+3)
8B4yy 9b4yy ?A<B field | BRLT.field A,B,PC+(yy+3)
8B5yy 9b5yy ?B<C field | BRLT.field B,C,PC+(yy+3)
8B6yy 9b6yy ?C<A field | BRLT.field C,A,PC+(yy+3)
8B7yy 9b7yy ?D<C field | BRLT.field D,C,PC+(yy+3)
8B8yy 9b8yy ?A>=B field | BRGE.field A,B,PC+(yy+3)
8B9yy 9b9yy ?B>=C field | BRGE.field B,C,PC+(yy+3)
8BAyy 9bAyy ?C>=A field | BRGE.field C,A,PC+(yy+3)
8BByy 9bByy ?D>=C field | BRGE.field D,C,PC+(yy+3)
8BCyy 9bCyy ?A<=B field | BRLE.field A,B,PC+(yy+3)
8BDyy 9bDyy ?B<=C field | BRLE.field B,C,PC+(yy+3)
8BEyy 9bEyy ?C<=A field | BRLE.field C,A,PC+(yy+3)
8BFyy 9bFyy ?D<=C field | BRLE.field D,C,PC+(yy+3)
** RET instead of BR for all of the above, if yy=0.
fs: P WP XS X S M B W
a: 0 1 2 3 4 5 6 7
b: 8 9 A B C D E F
íííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííí
A, C, D
íííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííí
ÄÄ field ÄÄ
A fs
ÄÄÄÄÄÄÄÄÄÄÄ
C0 Aa0 A=A+B field | ADD.field B,A
C1 Aa1 B=B+C field | ADD.field C,B
C2 Aa2 C=C+A field | ADD.field A,C
C3 Aa3 D=D+C field | ADD.field C,D
C4 Aa4 A=A+A field | ADD.field A,A
C5 Aa5 B=B+B field | ADD.field B,B
C6 Aa6 C=C+C field | ADD.field C,C
C7 Aa7 D=D+D field | ADD.field D,D
C8 Aa8 B=B+A field | ADD.field A,B
C9 Aa9 C=C+B field | ADD.field B,C
CA AaA A=A+C field | ADD.field C,A
CB AaB C=C+D field | ADD.field D,C
CC AaC A=A-1 field | DEC.field A
CD AaD B=B-1 field | DEC.field B
CE AaE C=C-1 field | DEC.field C
CF AaF D=D-1 field | DEC.field D
D0 Ab0 A=0 field | CLR.field A
D1 Ab1 B=0 field | CLR.field B
D2 Ab2 C=0 field | CLR.field C
D3 Ab3 D=0 field | CLR.field D
D4 Ab4 A=B field | MOVE.field B,A
D5 Ab5 B=C field | MOVE.field C,B
D6 Ab6 C=A field | MOVE.field A,C
D7 Ab7 D=C field | MOVE.field C,D
D8 Ab8 B=A field | MOVE.field A,B
D9 Ab9 C=B field | MOVE.field B,C
DA AbA A=C field | MOVE.field C,A
DB AbB C=D field | MOVE.field D,C
DC AbC ABEX field | SWAP.field A,B
DD AbD BCEX field | SWAP.field B,C
DE AbE ACEX field | SWAP.field A,C
DF AbF CDEX field | SWAP.field C,D
fs: P WP XS X S M B W
a: 0 1 2 3 4 5 6 7
b: 8 9 A B C D E F
íííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííí
B, E, F
íííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííí
ÄÄ field ÄÄÄ
A fs
ÄÄÄÄÄÄÄÄÄÄÄÄ
E0 Ba0 A=A-B field | SUB.field B,A
E1 Ba1 B=B-C field | SUB.field C,B
E2 Ba2 C=C-A field | SUB.field A,C
E3 Ba3 D=D-C field | SUB.field C,D
E4 Ba4 A=A+1 field | INC.field A
E5 Ba5 B=B+1 field | INC.field B
E6 Ba6 C=C+1 field | INC.field C
E7 Ba7 D=D+1 field | INC.field D
E8 Ba8 B=B-A field | SUB.field A,B
E9 Ba9 C=C-B field | SUB.field B,C
EA BaA A=A-C field | SUB.field C,A
EB BaB C=C-D field | SUB.field D,C
EC BaC A=B-A field | SUBN.field B,A
ED BaD B=C-B field | SUBN.field C,B
EE BaE C=A-C field | SUBN.field A,C
EF BaF D=C-D field | SUBN.field C,D
F0 Bb0 ASL field | SLN.field A
F1 Bb1 BSL field | SLN.field B
F2 Bb2 CSL field | SLN.field C
F3 Bb3 DSL field | SLN.field D
F4 Bb4 ASR field | SRN.field A
F5 Bb5 BSR field | SRN.field B
F6 Bb6 CSR field | SRN.field C
F7 Bb7 DSR field | SRN.field D
F8 Bb8 A=-A field | NEG.field A
F9 Bb9 B=-B field | NEG.field B
FA BbA C=-C field | NEG.field C
FB BbB D=-D field | NEG.field D
FC BbC A=-A-1 field | NOT.field A
FD BbD B=-B-1 field | NOT.field B
FE BbE C=-C-1 field | NOT.field C
FF BbF D=-D-1 field | NOT.field D
fs: P WP XS X S M B W
a: 0 1 2 3 4 5 6 7
b: 8 9 A B C D E F
íííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííí
Data Storage Allocation
íííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííí
00..0 BSS expr | DATA0 expr **
nn..n CON(m) expr | DATA.m expr
nn..n REL(m) expr | DATA.m expr-.
zy..a NIBASC 'chars' | ASCII `chars'
zy..a NIBASC \chars\ | ASCII `chars'
hh..h NIBHEX h..hh | DATA.m h..hh
** Requires inclusion of the following STAR macro
definition:
macro bss arg=0
save op
arg=$arg
op = `;'
if arg > 0
if arg < 8
data.$arg 0
else
op = `bss'
endif
endif
$op $(arg-^d8)
restore op
endmacro
íííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííííí
New Instructions
818f0m A=A+CON rfs,d | ADD.rfs d,A
818f1m B=B+CON rfs,d | ADD.rfs d,B
818f2m C=C+CON rfs,d | ADD.rfs d,C
818f3m D=D+CON rfs,d | ADD.rfs d,D
818f8m A=A-CON rfs,d | SUB.rfs d,A
818f9m B=B-CON rfs,d | SUB.rfs d,B
818fAm C=C-CON rfs,d | SUB.rfs d,C
818fBm D=D-CON rfs,d | SUB.rfs d,D
819f0 ASRB.F fs | SRB.fs A
819f1 BSRB.F fs | SRB.fs B
819f2 CSRB.F fs | SRB.fs C
819f3 DSRB.F fs | SRB.fs D
81Af00 R0=A.F fs | MOVE.fs A,R0
81Af01 R1=A.F fs | MOVE.fs A,R1
81Af02 R2=A.F fs | MOVE.fs A,R2
81Af03 R3=A.F fs | MOVE.fs A,R3
81Af04 R4=A.F fs | MOVE.fs A,R4
81Af08 R0=C.F fs | MOVE.fs C,R0
81Af09 R1=C.F fs | MOVE.fs C,R1
81Af0A R2=C.F fs | MOVE.fs C,R2
81Af0B R3=C.F fs | MOVE.fs C,R3
81Af0C R4=C.F fs | MOVE.fs C,R4
81Af10 A=R0.F fs | MOVE.fs R0,A
81Af11 A=R1.F fs | MOVE.fs R1,A
81Af12 A=R2.F fs | MOVE.fs R2,A
81Af13 A=R3.F fs | MOVE.fs R3,A
81Af14 A=R4.F fs | MOVE.fs R4,A
81Af18 C=R0.F fs | MOVE.fs R0,C
81Af19 C=R1.F fs | MOVE.fs R1,C
81Af1A C=R2.F fs | MOVE.fs R2,C
81Af1B C=R3.F fs | MOVE.fs R3,C
81Af1C C=R4.F fs | MOVE.fs R4,C
81Af20 AR0EX.F fs | SWAP.fs A,R0
81Af21 AR1EX.F fs | SWAP.fs A,R1
81Af22 AR2EX.F fs | SWAP.fs A,R2
81Af23 AR3EX.F fs | SWAP.fs A,R3
81Af24 AR4EX.F fs | SWAP.fs A,R4
81Af28 CR0EX.F fs | SWAP.fs C,R0
81Af29 CR1EX.F fs | SWAP.fs C,R1
81Af2A CR2EX.F fs | SWAP.fs C,R2
81Af2B CR3EX.F fs | SWAP.fs C,R3
81Af2C CR4EX.F fs | SWAP.fs C,R4
81B2 PC=A | JUMP.A A
81B3 PC=C | JUMP.A C
81B4 A=PC | MOVE.A PC,A
81B5 C=PC | MOVE.A PC,C
81B6 APCEX | SWAP.A A,PC
81B7 CPCEX | SWAP.A C,PC
--- End of Rosetta Stone ---